"""
例10　双胞胎字符串
1．问题描述
给定两个字符串s和t，每次可以任意交换s的奇数位或偶数位上的字
符，即奇数位上的字符能与其他奇数位的字符互换，偶数位上的字符也
能与其他偶数位的字符互换，问能否经过若干次交换，使s变成t。
2．问题示例
输入为s="abcd"，t="cdab"，输出是"Yes"，第1次a与c交换，第2次b
与d交换。输入s="abcd"，t="bcda"，输出是"No"，无论如何交换，都无
法得到bcda
"""


def twinStrings(s, t):
    if len(s) != len(t):
        return "No"
    ouS = []
    jiS = []
    ouT = []
    jiT = []
    for i in range(len(s)):
        if i % 2 == 0:
            ouS.append(s[i])
            ouT.append(t[i])
        else:
            jiS.append(s[i])
            jiT.append(t[i])
    ouS.sort()
    ouT.sort()
    jiT.sort()
    jiS.sort()
    for i in range(len(ouS)):
        if ouS[i] != ouT[i]:
            return "No"
        if jiS[i] != jiT[i]:
            return "No"
        return "Yes"


if __name__ == '__main__':
    s = "abcd"
    t = "cdab"
    print(twinStrings(s, t))
